std::hash
From Cppreference
| C++ Standard Library | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Utilities library | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| std::hash | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Defined in header <functional>
| ||
| template< class Key >
struct hash; | (since C++11) | |
The hash template defines a hash function object such that if two objects K and M of the same type Key compare equal, then std::hash(K)==std::hash(M), although the reverse is not necessarily true.
The unordered associative containers std::unordered_set, std::unordered_multiset, std::unordered_map, std::unordered_multimap use specializations of the template std::hash as the default hash function.
Contents |
[edit] Member types
| argument_type | Key |
| result_type | std::size_t |
[edit] Member functions
| constructs a hash function object (public member function) | |
| calculate the hash of the argument (public member function) | |
[edit] Standard specializations for basic types
| Defined in header <functional>
| ||
| template<> struct hash<bool>;
template<> struct hash<char>; | ||
[edit] Standard specializations for library types
| (C++11) (C++11) (C++11) (C++11) | hash support for strings (class template specialization) |
| (C++11) | hash support for std::error_code (class template specialization) |
| (C++11) | hash support for std::bitset (class template specialization) |
| (C++11) | hash support for std::shared_ptr (class template specialization) |
| (C++11) | hash support for std::type_index (class template specialization) |
| (C++11) | hash support for std::vector<bool> (class template specialization) |
| (C++11) | hash support for std::thread::id (class template specialization) |